eushullyfandomcom-20200223-history
God Catching Alchemy Meister:FAQ
=Frequently Asked Questions= 'Q'. How to pass exam at the end of 6th chapter? A'. Exam has three parts: 1) close all chests except two that are located at the place where arena and bar are (northwest corner chest, south central chest), 2) kill the guy with the natural skill (gained through class changes or available from beginning, skills gained from clothes or weapons won't work) of the person you love most (person, whose H-scene you have seen already in this playthrough), 3) kill all slimes in a single turn (use Emiritta's area spell) 'Q. How to pass Merodiana's test with chests? A'. You need to open two chests that are located at the same place as 霊悔の森 and ユマ湖, and close two chests that are located at the same place as 絶壁の教会跡 and 言霊の樹跡. (That is close the two bottom chests and open the two top chests.) 'Q. What are the options at the beginning of second playthrough? A'. 1. Initialization a. Difficulty: NormalHard 2. Transfer a. Rating: TransferDefault b. Level of owned house: TransferDefault c. Synthesis rank: TransferDefault d. Money: TransferDefault e. Unit's powers: TransferDefault (if you transfer unit's powers, you won't get their starting equipment) f. Items: TransferDefault 3. Omake a. Clone mode: ONOFF (like in Verita, when you start new round you have all companions, but they are green and you can't have events with them until you join them again.) b. Enemy level limit removed: ONOFF (if you remove level limit (turn this option to "ON") monsters will be harder, but you will still get the same amount of experience for killing them) c. Eushully-chan events added: ONOFF d. Extra events added: ONOFF (2.0 only, appears on the left of above options) 1. 2.0 Gameplay a. EX-Dungeon: ONOFF 2. 2.0 Gameplay - Dungeon a. Show previously collected gather points: ONOFF b. Show all map clear objectives, even when entering map for the first time: ONOFF 3. Extra Story Clear Omake a. Lily as a clone PC: ONOFF (Independent of Clone Mode: Unlock by clearing 2.0 scenario 1) b. Laguna as a clone-PC: ONOFF (Independent of Clone Mode; Unlock by clearing 2.0 scenario 2) c. Stone Golem as a clone-PC: ONOFF (Independent of Clone Mode; Unlock by clearing 2.0 scenario 2) 'Q. Why do I get only HP/SP/FS on level ups? A'. When you level up, the game selects (via Random Number Generator and an invisible growth rate) which stats get increased. Growth rates vary depending on the character - for example, casters like Emiritta or Eliza tend to have high Magic growth and poor Physical growth, while pure physical characters, like Yuera, have high Physical, but low Magic growth. It's entirely possible for the generator to roll badly, giving you one stat increase (or on rare ocassion, no increases). In addition, characters have maximum values for their stats, which on the stats screen, are depicted by a grey bar. The character's natural growth via level-up (expressed as light blue bars) cannot exceed these values, though equipment (expressed as dark blue bars) may exceed these values. The maximum values increase as the character reaches new tiers, with the greatest increases around level 50. If maximum values are attained for all stats, only HP/SP/FS can be increased any further (since there are no caps for these stats). 'Q. Why event sign on 親子魔獣の巣 (LV22 free map in ディジェネール丘陵地) does not activate when I step on it with my characters? A'. To activate this event, you need to allow グーテハウンド (yellow dog monster) to come there. Just kill giants that block the passage and free the way for it. 'Q. In Chapter 5, a man is asking for 10,000 S. What is meant, as I buy and how adquierne for quest. A'. The payment is to get the man to search for possible things related to the shell you took from ユマ湖. This will be required to progress in the Parasukevasu quest line, and will get you a document from the northern lands containing a few recipes next chapter. 'Q. '''How finish the chapter 6? '''A. After you complete the chapter requirements (see Route Map), meet up with Rosana, and you'll be informed that you need to pass an exam in the Yuidora Mines to get up to the next ranking. Check the first question for the solution to the exams. 'Q'. How to complete the quest N.18, N.29, N.52 and N.62? A. N. 18 (???); N.52 - This one will have to wait for a while, will occur after an L30 mission at the same place you originally found Melodiana; N. 62 - get people on all Event panels, put Kohakuren on top of the rally point near the locked area, go past the newly unlocked area and nuke the two goblins at the top. 'Q'.How finish the mission 迷いの鍾乳洞入り口 in 蒸発の鍾乳洞 'with yuera rute for finish the chapter 7? A. Will must reach the enemy base to clear the objective. In addition, Will must not die. 'Q. What is the fourth objective in 夢幻の断崖 in ミサンシェル? A. The objective is to secure exactly 60% of the map at the end of the battle. Due to the layout of the enemies, you'll have to let them take some of the territory and then have your troops move out to reach exactly 60%. You must escape the map as soon as the objective is reached to get credit for it. = Script for Automated Levelling Up = God Catching Alchemy Meister:Autolevel Script If you played Himegari, you may remember save scumming for better stats at every level up. Here in Kamidori, the mechanics are different to keep you from doing that (quite aside from the stat caps)- the simple load/attack repetition will always yield the same stat increases. However! I have found that if you save on the main map with a character ready to level, you can still save scum for stats- it just takes more clicks. This makes the process even more suitable for scripting; the process being longer, running through it manually each time is even more of a pain in the ass. I submit the following autolevel script for your amusement and benefit. Before using this script First things first, BACK UP YOUR SAVES. When making this script, I realized that deleting all your save games would take a script about five seconds and you wouldn't be able to stop it (unless it contained a hotkey to stop- and what malicious programmer would include one of those?). This realization scared me, so I'm issuing this warning. BACK UP YOUR SAVES. Do it before using any new version of a script. How to use This script uses AutoIt3, much like Andy Scull's Himegari Autolevel Script. So, go ahead and install AutoIt3 (http://www.autoitscript.com/autoit3/). Next you'll need my script, found below in the code block. Schlock the code in any old file, and give it the file extension ".au3". Then there's using it. This is version 0.1, a beta basically- it has virtually no user interface. Run the script, select the Kamidori program, and press F7 to play/pause (it starts paused) and F8 to close. Oh, yes. Before actually running it, BACK UP YOUR SAVES. What it needs is a save in slot 0 of the active save page. This save should be at the Yuidora city map (For faster initialization, start the script from this location). It will use save slot 9 on the same page to save the best statup acquired. The character you want to level needs to be on the first page of the character select screen, and also needs to be close to level-up- specifically, she should level up the next time you attack a bat from the first map of the game. Now, to modify the operation of the script, you need to modify the script itself. Since you've downloaded AutoIt3, you may as well use that editor, but you can do it in Notepad if you're inclined. Script Parameters Basically, the only script parameters you need to know are the $CHARACTER and $KEEPLOG variables, located early in the script. Set $CHARACTER to 0 if you're leveling Wil, 1 if you're leveling Yuena, 2 if you're leveling Emilitta, 3 if you're leveling Serawy, or 4 if you're leveling Att. (For the non-programmer, this happens on the line that says "GLOBAL $CHARACTER = 0". Change the zero.) I haven't progressed far enough in the game to program for other characters yet. Also, since all my characters still fit on one page, I don't know how to switch pages in the character select screen, so make sure the character in question is on the first page. Set $KEEPLOG to 1 to put a log of your leveling on your desktop. Set it to 0 to disable the feature. (Again for non-programmers, look for "GLOBAL $KEEPLOG = 1". Change the one.) I made a major assumption in writing this script: I assume that the first map of the game (工匠会試験地区) is always THE FIRST NON-FREE map in the mine. If this assumption is not true at any point in the game, then this script will not work at those points. Output The script will keep running until you stop it with F8. After every levelup, a tray tip will pop up with the lastest info. It shows the high score and high stats, and the last score and last stats. You'll probably be most interested in the stats. Those stat numbers are the increases in each stat, in order: HP, MP, FS - Physical attack and defense - Magic attack and defense - Agility and Luck. The score determines whether to save a given levelup or not. The scores are calculated as follows: Primary attack gives 1000 points, Off attack gives 10 points, HP/SP/FS give 1 point each, and the other stats give 100 points. (Hybrid-type attackers get 505 points for both attack stats.) So the ideal level up would yield a score of 1414. The script will save the best run in save slot 9 of the active save page. When you stop the script (F8), copy that save game someplace safe. If you start the script again, it will overwrite it. The Script One last time before I give this to you: BACK UP YOUR SAVES. ; Kamidori Autolevel v0.1, 120125 ; By B.J. Black ; ; This script automatically levels your character until you stop it. ; You'll need to disable Kamidori's Save/Load verification for this to work. ; ; This script requires a save at the Yuidora city map in slot 0 of the active save game page. ; Also, the character you're leveling needs to be on the first page of the character select screen. ; Controls ; Note when setting hotkeys: F1 is Kamidori's screenshot button, and F10 pauses the game. HotKeySet ("{F5}", "") HotKeySet ("{F6}", "") HotKeySet ("{F7}", "Pause") ; F7 - Press this to start and stop the operation of the script. HotKeySet ("{F8}", "ScriptExit") ; F8 - Press this to end the script. ; User Settings GLOBAL $CHARACTER = 0 ; An integer representing which character we're leveling. ; Wil is 0, Yuena is 1, Emilitta is 2, Serawy is 3, Att is 4. GLOBAL $KEEPLOG = 1 ; If true, this signals the script to output a log of the iterations. ; Constants GLOBAL CONST $SCRIPTNAME = "Kamidori Autolevel v0.1" GLOBAL CONST $DELAY = 50 ; Standard time to delay between clicks/downclicks/waiting. GLOBAL CONST $TIMEOUT = 5000 ; Timeout used in clickuntil/clickuntilnot/waituntil/waituntilnot, 5 seconds. GLOBAL CONST $LEVELTIMEOUT = 10000 ; Timeout in waiting for the levelup screen, 10 seconds. GLOBAL CONST $STATLOCATIONS92 = _ [ 283, _ 300, _ 317, _ 249, _ 266, _ 283, _ 300, _ 317, _ 334 _ ] ; Screen locations for the nine stats, on the levelup screen. GLOBAL CONST $STATWEIGHTS394 = _ [ [ 1, 1, 1, _ 1, 1, 1, _ 1, 1, 1, _ 1000, 1000, 1000, _ 100, 100, 100, _ 10, 10, 10, _ 100, 100, 100, _ 100, 100, 100, _ 100, 100, 100 ], _ [ 1, 1, 1, _ 1, 1, 1, _ 1, 1, 1, _ 10, 10, 10, _ 100, 100, 100, _ 1000, 1000, 1000, _ 100, 100, 100, _ 100, 100, 100, _ 100, 100, 100 ], _ [ 1, 1, 1, _ 1, 1, 1, _ 1, 1, 1, _ 505, 505, 505, _ 100, 100, 100, _ 505, 505, 505, _ 100, 100, 100, _ 100, 100, 100, _ 100, 100, 100 ] ] ; Stats weights for each character type- Physical Attacker, Magical Attacker, Hybrid Attacker. GLOBAL CONST $MAPY = 210 ; The Y-coordinate where we can find the first map in the mine. GLOBAL CONST $MAPYINC = 50 ; The vertical distance between map panels in the stage select screen. GLOBAL CONST $CHARSELX = 319 ; The X-coordinate where we can find the first character in the character select screen. GLOBAL CONST $CHARSELXINC = 140 ; The horizontal distance between the characters in the character select screen. GLOBAL CONST $CHARSELY = 103 ; The Y-coordinate where we can find the first character in the character select screen. GLOBAL CONST $CHARSELYINC = 65 ; The vertical distance between the characters in the character select screen. AutoItSetOption("PixelCoordMode", 2) ; Act within the active window. AutoItSetOption("MouseCoordMode", 2) ; Act within the active window. AutoItSetOption("MouseClickDownDelay", $DELAY) ; Don't click too fast, the game won't register it. AutoItSetOption("MouseClickDelay", $DELAY) ; Don't click too fast, the game won't register it. GLOBAL CONST $SETTINGSFILE = @TempDir & "\kamidoriautolevel.ini" ; Where we save and load settings. GLOBAL CONST $LOGFILE = @DesktopCommonDir & "\kamidoriautolevel.txt" ; Where we save the log file (if $KEEPLOG is true). ; Global Variables (initialized once, then used as constants) GLOBAL $CHARTYPE ; The character's primary attack type- 0 for Physical, 1 for Magic, 2 for Hybrid. GLOBAL $MAPYVAL ; The row number for the first map. GLOBAL $CHARSELXVAL ; The column number of the desired character. GLOBAL $CHARSELYVAL ; The row number of the desired character. GLOBAL $ZOOM ; The zoom level of the camera (0 = Max zoom-in, 6 = Max zoom-out). ; Scoring Global Variables GLOBAL $HIGHSCORE = -1 GLOBAL $HIGHSTATS GLOBAL $HIGHITER = -1 GLOBAL $LASTSCORE GLOBAL $LASTSTATS9 GLOBAL $STATDISPLAY GLOBAL $STATACCUM910 GLOBAL $NEWHIGH = 0 ; Bool- set to one when a new high score is set. GLOBAL $SUCCESSES = 0 GLOBAL $ITERATIONS = 0 GLOBAL $PAUSE = 0 GLOBAL $ERROR = 0 GLOBAL $LOG ; Body Main () ; Simplicity itself. ; User Functions Func Help () ;----- HotKey F5 *** NOT YET IMPLEMENTED *** EndFunc Func Settings () ;----- HotKey F6 *** NOT YET IMPLEMENTED *** EndFunc Func Pause () ;----- HotKey F7 if $PAUSE then ; We need to unpause. $PAUSE = 0 return else $PAUSE = 1 while $PAUSE sleep ($DELAY) wend endif EndFunc Func ScriptExit () ;----- Hotkey F8 if $KEEPLOG then LogSummary () Exit EndFunc ; Helper Functions Func Main () ; TODO: Instead of aborting to the title for the first iteration, complete an iteration after initialization. Pause () do $ERROR = Init () if $ERROR then Load () until $ERROR = 0 if $KEEPLOG then $LOG = FileOpen ($LOGFILE, 2) LogIntro() endif ; TODO (above) here. while 1 Iter () if $ERROR then $LASTSCORE = 0 $STATDISPLAY = "Failure" else for $stat = 0 to 8 $STATACCUM$stat[$LASTSTATS$stat] += 1 next endif ShowTrayInfo () if $KEEPLOG then LogIteration () wend EndFunc Func Init () ; TODO: Detection for more characters. local $chartypearray5 = 0, 1, 2, 0 $CHARTYPE = $chartypearray$CHARACTER if clickuntil (915, 114, 980, 25, 0x9a7531) then return 3 local $x = 0 while PixelGetColor (1017, $MAPY + $MAPYINC * $x) = 0xd8d5d0 $x += 1 wend $MAPYVAL = $x if clickuntil (900, $MAPY + $MAPYINC * $MAPYVAL, 30, 520, 0xbdbdbd) then return 4 if clickuntilnot (50, 80, 30, 520, 0xbdbdbd) then return 5 if clickuntil (1, 1, 45, 99, 0x0000ff) then return 1 if PixelGetColor (77, 99) = 0x05bcfe then $ZOOM = 0 elseif PixelGetColor (85, 100) = 0x06aefd then $ZOOM = 1 elseif PixelGetColor (96, 100) = 0x01feff then $ZOOM = 2 elseif PixelGetColor (109, 99) = 0x07ebf9 then $ZOOM = 3 elseif PixelGetColor (125, 99) = 0x07eaf9 then $ZOOM = 4 elseif PixelGetColor (147, 99) = 0x02e7fe then $ZOOM = 5 elseif PixelGetColor (173, 99) = 0x02f5ff then $ZOOM = 6 endif ;if clickuntil (44, 157, 108, 199, 0x07ebf9) then return 6 ; Zoom Detect goes here. if clickuntil (40, 520, 75, 75, 0xaf934f) then return 7 local $xoffset5 = 36, 9, -16, 51 local $yoffset5 = 11, 11, 2, 10 for $x = 0 to 2 for $y = 0 to 1 if PixelGetColor ( $CHARSELX + $CHARSELXINC * $x + $xoffset$CHARACTER, _ $CHARSELY + $CHARSELYINC * $y + $yoffset$CHARACTER) = 0xffffff then $CHARSELXVAL = $x ; This doesn't work when the variables are used as the for loop variables. Bizarre. $CHARSELYVAL = $y return 0 endif next next ; Note this only checks the first page. I don't have enough characters to be able to turn the page yet, so I can't program it. MsgBox (0, "Character Not Found", "EWISOTT") return 1 EndFunc Func Iter () $ITERATIONS += 1 $ERROR = Load () if $ERROR then return $ERROR = Act () if $ERROR then return Assess () if $NEWHIGH then $NEWHIGH = 0 $ERROR = Save () if $ERROR then return $HIGHSCORE = $LASTSCORE $HIGHSTATS = $statdisplay $HIGHITER = $ITERATIONS endif $SUCCESSES += 1 return EndFunc Func Save () ; TODO: Save Slot Selection if clickuntil (735, 15, 27, 17, 0xfefefe) then return 1 if clickuntilnot (350, 525, 27, 17, 0xfefefe) then return 2 return 0 EndFunc Func Assess () ; TODO: Get samples for numbers 3 and 5+ $LASTSCORE = 0 $STATDISPLAY = "" for $stat = 0 to 8 if PixelGetColor ($STATLOCATIONS$stat0 + 17, $STATLOCATIONS$stat1 - 9) = 0xffffff then $LASTSTATS$stat = 1 $STATDISPLAY &= "1" elseif PixelGetColor ($STATLOCATIONS$stat0 + 15, $STATLOCATIONS$stat1 - 10) = 0xffffff then $LASTSTATS$stat = 2 $STATDISPLAY &= "2" elseif PixelGetColor ($STATLOCATIONS$stat0 + 20, $STATLOCATIONS$stat1 - 10) = 0xffffff then $LASTSTATS$stat = 4 $STATDISPLAY &= "4" else ; Note that I don't have examples for any other stats yet. $LASTSTATS$stat = 0 $STATDISPLAY &= "0" endif if $stat = 2 OR $stat = 4 OR $stat = 6 then $STATDISPLAY &= "-" if $LASTSTATS$stat <> 0 then for $summand = 0 to $LASTSTATS$stat - 1 $LASTSCORE += $STATWEIGHTS$CHARTYPE$stat$summand next endif next if $LASTSCORE > $HIGHSCORE then $NEWHIGH = 1 endif EndFunc Func Act () if clickuntil (915, 114, 980, 25, 0x9a7531) then return 3 if clickuntil (900, $MAPY + $MAPYINC * $MAPYVAL, 30, 520, 0xbdbdbd) then return 4 if clickuntilnot (50, 80, 30, 520, 0xbdbdbd) then return 5 if clickuntil (40, 520, 75, 75, 0xaf934f) then return 7 if clickuntilnot ( $CHARSELX + $CHARSELXINC * $CHARSELXVAL, _ $CHARSELY + $CHARSELYINC * $CHARSELYVAL, 75, 75, 0xaf934f) then return 8 ; local $yformapmove7 = 185, 191, 199, 208, 222, 238 local $colorformapmove7 = 0x17b5e8, 0x01feff, 0x07ebf9, 0x03d9fe, 0x02e7fe, 0x02f5ff if clickuntil (45, 157, 45, $yformapmove$ZOOM, $colorformapmove$ZOOM) then return 6 click (512, 288) local $yforattackclick7 = 415, 390, 370, 355, 340, 330 move (512, $yforattackclick$ZOOM) if waituntilnot (45, 160, 0x0000ff) then return 10 if clickuntil (512, $yforattackclick$ZOOM, 499, 218, 0xffffff) then return 11 if clickuntilnot (512, 455, 499, 218, 0xffffff) then return 12 if levelwait () then return 13 click (512, 288) if waituntil (506, 251, 0xffffff) then return 14 return 0 EndFunc Func Load () ; TODO: Load Slot Selection send ("{ESC}T{ENTER}") sleep (500) if clickuntil (780, 365, 27, 17, 0xfefefe) then return 15 if clickuntilnot (350, 100, 27, 17, 0xfefefe) then return 16 ; If you allow the user to input locations, this will change. return 0 EndFunc Func LogSummary () $str = @CRLF $str &= "Number of Iterations:" & @TAB & $ITERATIONS - 1 & @CRLF $str &= "Number of Successful Levelups:" & @TAB & $SUCCESSES & @CRLF $str &= "" & @CRLF $str &= "Best Iteration:" & @CRLF $str &= @TAB & "Iteration Number " & $HIGHITER & @CRLF $str &= @TAB & "Stats:" & @TAB & $HIGHSTATS & @CRLF $str &= @TAB & "Score:" & @TAB & $HIGHSCORE & @CRLF $str &= "" & @CRLF $str &= "Stat Results:" & @CRLF LOCAL $statnames9 = "SP", "FS", "ButsuKou", "ButsuBou", "MaKou", "MaBou", "Binshou", "Un" for $i = 0 to 8 $str &= @TAB & $statnames$i & ":" & @CRLF for $j = 0 to 8 $k = $STATACCUM$i$j if $k then $str &= @TAB & @TAB & "+" & $j & ":" & @TAB & $k & " time" if $k > 1 then $str &= "s" $str &= "." & @CRLF endif next next FileWrite ($LOG, $str) EndFunc Func LogIteration () local $errorstring17 = [ _ "Unknown error.", "Did not detect opening of the save game screen.", "Did not detect closing of the save game screen.", "Did not detect opening of the mine stage select screen.", "Did not detect opening of the desired map for departure.", "Did not detect closing of the mine stage select screen.", "Did not detect movement of the map to the requisite location.", "Did not detect opening of the character select menu.", "Did not detect closing of the character select menu.", "Did not detect deployment square.", "Did not detect attack square.", "Did not detect attack menu.", "Did not detect commencement of battle.", "Did not detect level up screen.", "Did not detect presence of level statistics.", "Did not detect opening of the load game screen.", "Did not detect closing of the load game screen." ] if $ERROR then $str = "Failure: " & $errorstring$ERROR else $str = "Success: " & $STATDISPLAY & @TAB & "Score: " & $LASTSCORE endif $str &= @CRLF FileWrite ($LOG, $str) EndFunc Func LogIntro () ; TODO: Detection for more characters. local $charstr5 = "Yuena", "Emilitta", "Serawy", "Att" local $typestr3 = "Magical", "Hybrid" $str = "New Levelup run: Leveling " & $charstr$CHARACTER & "." & @CRLF $str &= $charstr$CHARACTER & " is a " & $typestr$CHARTYPE & " Template character." $str &= @CRLF $str &= "Stat Weights (" & $typestr$CHARTYPE & " Template):" & @CRLF $str &= @TAB & "HP:" & @TAB & @TAB & $STATWEIGHTS$CHARTYPE00 & @CRLF $str &= @TAB & "MP:" & @TAB & @TAB & $STATWEIGHTS$CHARTYPE10 & @CRLF $str &= @TAB & "FS:" & @TAB & @TAB & $STATWEIGHTS$CHARTYPE20 & @CRLF $str &= @TAB & "ButsuKou:" & @TAB & $STATWEIGHTS$CHARTYPE30 & @CRLF $str &= @TAB & "ButsuBou:" & @TAB & $STATWEIGHTS$CHARTYPE40 & @CRLF $str &= @TAB & "MaKou:" & @TAB & @TAB & $STATWEIGHTS$CHARTYPE50 & @CRLF $str &= @TAB & "MaBou:" & @TAB & @TAB & $STATWEIGHTS$CHARTYPE60 & @CRLF $str &= @TAB & "Binshou:" & @TAB & $STATWEIGHTS$CHARTYPE70 & @CRLF $str &= @TAB & "Un:" & @TAB & @TAB & $STATWEIGHTS$CHARTYPE80 & @CRLF $str &= @CRLF local $mapstring5 = "second", "third", "fourth", "fifth" $str &= "Map found as the " & $mapstring$MAPYVAL & " stage in the mine stage select screen." & @CRLF $str &= @CRLF local $zoomstring7 = [ _ "Max Zoom-in", "High Zoom-in", "Low Zoom-in", _ "Neutral Zoom", _ "Low Zoom-out", "High Zoom-out", "Max Zoom-out" ] $str &= "Zoom detected as " & $zoomstring$ZOOM & "." & @CRLF $str &= @CRLF local $charselystr2 = "Lower" local $charselxstr3 = "Middle", "Right" $str &= "Character found in the character select screen in the " $str &= $charselystr$CHARSELYVAL & " " & $charselxstr$CHARSELXVAL $str &= " panel of the first page." & @CRLF $str &= @CRLF FileWrite ($LOG, $str) EndFunc ; Utility Functions func showtrayinfo () ; Shows info on levelup progress as a tray popup. $str = "High Score:" & Chr (9) & $HIGHSCORE & @CRLF $str &= "High Stats:" & Chr (9) & $HIGHSTATS & @CRLF $str &= "Last Score:" & Chr (9) & $LASTSCORE if $NEWHIGH then $str &= Chr (9) & "New High Score!" $str &= @CRLF $str &= "Last Stats:" & Chr (9) & $STATDISPLAY & @CRLF & @CRLF $str &= "Iteration successes:" & Chr (9) & $SUCCESSES & "/" & $ITERATIONS TrayTip ($SCRIPTNAME, $str, 3600) EndFunc func levelwait () ; wait for the levelup screen (after all actions have been performed). local $count = 0 While PixelGetColor (416, 251) <> 0xffffff sleep ($DELAY) $count += $DELAY if ($count > $LEVELTIMEOUT) then return 1 WEnd return 0 EndFunc func waituntilnot ($px, $py, $color) ; wait until pixel at px,py is not the given color. local $count = 0 While PixelGetColor ($px, $py) = $color sleep ($DELAY) $count += $DELAY if ($count > $TIMEOUT) then return 1 WEnd return 0 EndFunc func waituntil ($px, $py, $color) ; wait until pixel at px,py is the given color. local $count = 0 While PixelGetColor ($px, $py) <> $color sleep ($DELAY) $count += $DELAY if ($count > $TIMEOUT) then return 1 WEnd return 0 EndFunc func clickuntilnot ($mx, $my, $px, $py, $color) ; click at mx,my until pixel at px,py is not the given color. local $count = 0 click ($mx, $my) While PixelGetColor ($px, $py) = $color $count += 1 if ($count * $DELAY * 2 > $TIMEOUT) then return 1 ; In a single call of the 'click' function, $DELAY should operate twice. click ($mx + Mod ($count, 2), $my) ; Note the modulus- it's there to jiggle the mouse so the game realizes where it is. ; The game caret is not at the mouse's location until the game registers a mouse MOVEMENT (usually). WEnd return 0 EndFunc func clickuntil ($mx, $my, $px, $py, $color) ; click at mx,my until pixel at px,py is the given color. local $count = 0 click ($mx, $my) While PixelGetColor ($px, $py) <> $color $count += 1 if ($count * $DELAY * 2 > $TIMEOUT) then return 1 ; In a single call of the 'click' function, $DELAY should operate twice. click ($mx + Mod ($count, 2), $my) ; Note the modulus- it's there to jiggle the mouse so the game realizes where it is. ; The game caret is not at the mouse's location until the game registers a mouse MOVEMENT (usually). WEnd return 0 EndFunc func click ($x, $y) ; Like I want to type five parameters every time. MouseClick ("left", $x, $y, 1, 0) EndFunc func move ($x, $y) ; Like I want to type three parameters every time. MouseMove ($x, $y, 0) EndFunc func idle () ; Does nothing. while 1 sleep (3600000) ; Interesting trivia: there are 3600000 milliseconds in one hour. wend EndFunc